package com.sm.dao;

import com.sm.model.MyVip;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MyVipMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(MyVip record);

    int insertSelective(MyVip record);

    MyVip selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(MyVip record);

    int updateByPrimaryKey(MyVip record);

    /**
     * 查询我的未过期的会员卡
     * @param userId
     * @return
     */
    List<MyVip> listByUserId(Integer userId);

    /**
     * 根据用户ID，vipid查该用户拥有的VIP
     * @param userId
     * @param vipId
     * @return
     */
    MyVip selectByUserIdAndVipId(@Param("userId") Integer userId, @Param("vipId") String vipId);

    /**
     * 获取最高身份类型
     * @param userId
     * @return
     */
    Integer getTopType(@Param("userId") Integer userId);

    Integer countByParentUserIdAndVipType(@Param("userId") Integer userId, @Param("types") Integer... types);

    Integer countNotVipByParentUserId(@Param("userId") Integer userId);

    Integer existType(@Param("userId") Integer userId, @Param("type") Integer type);
}
